# 作者: 赵若云
# 2025年02月20日10时00分06秒
# 3478783573@qq.com

class Person:
    # self是每个函数必须要有的，代表对象自己传到self
    def __init__(self, name1, age, weight):  # 属性 特征,对象被初始化时，会被自动调用
        self.name = name1
        self.age = age
        self.weight = weight

    def run(self):  # 方法
        self.weight -= 0.5
        print(f'{self.name}跑步了，体重减少0.5公斤{self.weight}')

    def eat(self):
        self.weight += 1
        print(f'{self.name}吃大餐，体重增加1公斤{self.weight}')


class Dog:
    def __init__(self, name, color):
        self.name = name
        self.color = color

    def bark(self):
        pass

    def shake(self):
        pass




if __name__ == '__main__':
    elephant = Person('大象', 18, 80)  # 实例化对象，默认先走__init__
    tiger = Person('老虎', 17, 60)

    elephant.run()
    elephant.eat()
    print(elephant.weight)
    # 不会报错，但不建议这么写，可读性不强，不规范
    # elephant.height = 1.85  # elephant是可变数据类型
    # print((elephant.height))
    elephant.age = 20  # 修改

    print('-' * 50)
    # 通过dir看内置方法
    print(dir(Person))
    print(dir(elephant))
    print(dir(tiger))

    wangcai = Dog('wangcai', 'yellow')
    wangcai.bark()
